<%  
	var ObjectRange = Class.create
	(
		Enumerable, 
		{
			initialize: function(start, end, exclusive) 
			{
				this.start = start;
				this.end = end;
				this.exclusive = exclusive;
			},		
			_each: function(iterator) 
			{
				var value = this.start;
				while (this.include(value)) {
				iterator(value);
				value = value.succ();
				}
			},
			include: function(value) 
			{
				if (value < this.start)
				return false;
				if (this.exclusive)
					return value < this.end;
				return value <= this.end;
			}
		}
	);
	
	var $R=function($start,$end,$exclusive) 
	{
		return new ObjectRange($start,$end,$exclusive);
	};
%>